{
 "cells": [
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T07:59:14.598801Z",
     "start_time": "2025-01-17T07:59:12.231036Z"
    }
   },
   "source": [
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "from tqdm.auto import tqdm\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "print(sys.version_info)\n",
    "for module in mpl, np, pd, sklearn, torch:\n",
    "    print(module.__name__, module.__version__)\n",
    "    \n",
    "device = torch.device(\"cuda:0\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "print(device)\n"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sys.version_info(major=3, minor=12, micro=3, releaselevel='final', serial=0)\n",
      "matplotlib 3.10.0\n",
      "numpy 1.26.4\n",
      "pandas 2.2.3\n",
      "sklearn 1.6.0\n",
      "torch 2.5.1+cpu\n",
      "cpu\n"
     ]
    }
   ],
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dataset\n",
    "\n",
    "实际上我们从chapter_2 开始就在使用该模块"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T08:03:23.149047Z",
     "start_time": "2025-01-17T08:03:23.144715Z"
    }
   },
   "source": [
    "from torch.utils.data import Dataset\n",
    "\n",
    "class RandomDataset(Dataset):\n",
    "    def __init__(self, labels):\n",
    "        self.labels = labels\n",
    "        \n",
    "    def __getitem__(self, index):\n",
    "        data = torch.mul(torch.randn(2), 0.1) + self.labels[index] # 生成两个服从标准正态分布的随机数（两个维度），然后乘以0.1，再加上label\n",
    "        label = self.labels[index]\n",
    "        return data, label # 返回的是一个元组,这里返回的数据格式决定我们遍历这个数据集时，每次迭代返回的数据格式\n",
    "    \n",
    "    def __len__(self):\n",
    "        return len(self.labels)\n",
    "    \n",
    "#np.random.randint(2, size=1000)生成了一个长度为1000的随机标签数组，每个元素都是0或1\n",
    "rd = RandomDataset(np.random.randint(2, size=1000))\n",
    "print(\"数据集的长度：\", len(rd))\n",
    "\n",
    "for x,y in rd:\n",
    "    print(x,y)\n",
    "    break"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集的长度： 1000\n",
      "tensor([0.9429, 0.9720]) 1\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T08:04:21.855910Z",
     "start_time": "2025-01-17T08:04:21.768169Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 可视化随机数据集\n",
    "x1 = []\n",
    "x2 = []\n",
    "labels = [] #标签\n",
    "\n",
    "for (a,b), label in rd:\n",
    "    x1.append(a)\n",
    "    x2.append(b)\n",
    "    labels.append(label)\n",
    "\n",
    "    \n",
    "plt.scatter(x1, x2, s=10, c=labels) # s是点的大小，c是颜色\n",
    "plt.colorbar()\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 6
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-07-19T08:11:18.763467Z",
     "start_time": "2024-07-19T08:11:18.753493Z"
    }
   },
   "source": [
    "## DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-01-17T08:04:28.662344Z",
     "start_time": "2025-01-17T08:04:28.657327Z"
    }
   },
   "source": [
    "from torch.utils.data import DataLoader\n",
    "\n",
    "ld = DataLoader(rd, batch_size=8, shuffle=True) # batch_size是每次迭代返回的数据个数，shuffle是是否打乱数据集\n",
    "\n",
    "for data, label in ld:\n",
    "    print(data)\n",
    "    print(label)\n",
    "    break"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[ 1.0755e+00,  9.7241e-01],\n",
      "        [ 1.1428e+00,  1.1787e+00],\n",
      "        [-1.4286e-01, -5.5027e-02],\n",
      "        [ 2.0604e-01,  1.7216e-01],\n",
      "        [ 9.4557e-01,  1.1804e+00],\n",
      "        [-6.8920e-04, -1.8416e-02],\n",
      "        [ 9.3248e-01,  9.5348e-01],\n",
      "        [-1.1342e-01, -1.7592e-02]])\n",
      "tensor([1, 1, 0, 0, 1, 0, 1, 0], dtype=torch.int32)\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## tfrecord\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2024-07-19T08:13:01.285506800Z",
     "start_time": "2024-07-19T08:13:01.277636200Z"
    }
   },
   "source": [
    "复现论文的时候更多地发现使用 pyarrow 而不是 tfrecord\n",
    "\n",
    "如果想在pytorch里使用tfrecord，可以参考 https://github.com/vahidk/tfrecord"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
